package com.it.tydic.estate.common.wrapper;

import java.io.Serializable;

public class WrapMapper implements Serializable{

    private static final long serialVersionUID = 3856879124167290921L;

    private WrapMapper() {

    }
    public static <T> Wrapper<T> wrap (int code ,String message ,T obj) {
        return new Wrapper<T>(code,message,obj);
    }
    public static <T> Wrapper<T> wrap (int code ,String message) {
        return new Wrapper<T>(code,message,null);
    }
    public static <T> Wrapper<T> wrap (int code) {
        return new Wrapper<T>(code,null,null);
    }

    public static <T> Wrapper<T> ok(T obj) {
        return wrap(Wrapper.SUCCESS_CODE,Wrapper.SUCCESS_MESSAGE,obj);
    }
    public static <T> Wrapper<T> ok() {
        return new Wrapper<T>();
    }
    public static <T> Wrapper<T> error(T obj) {
        return wrap(Wrapper.ERROR_CODE,Wrapper.ERROR_MESSAGE,obj);
    }
    public static <T> Wrapper<T> error(String message , T obj) {
        return wrap(Wrapper.ERROR_CODE,message,obj);
    }
    public static <T> Wrapper<T> error(String message ) {
        return wrap(Wrapper.ERROR_CODE,message,null);
    }
    public static <T> Wrapper<T> wrap (Exception e) {
        return new Wrapper<T>(Wrapper.ERROR_CODE,e.getMessage());
    }
    public static <T> Wrapper<T> illegalArgument () {
        return new Wrapper<T>(Wrapper.ILLEGAL_ARGUMENT_CODE,Wrapper.ILLEGAL_ARGUMENT_MESSAGE);
    }
}
